Content providers are entities that often provide a variety of content (e.g., web pages, news articles, scholarly articles, micro-blog posts, images, videos, software, and/or the like) in digital form for consumption by users. The content provided by content providers is often provided to, or otherwise made available to, users by distributing the content to users' computing devices that are part of a network, including private networks and public networks, such as the Internet. Generally, there are very few limits on the content that content providers make available to users, and it can often be difficult for users to verify the validity of the content that the users have been provided.
A blockchain is a continuously growing list of records, called blocks, which are linked and secured using cryptography. Each block may contain a hash pointer as a link to a previous block, a timestamp, and transactional data (e.g., each block may include many transactions). By design, a blockchain is inherently resistant to modification of the transactional data. A blockchain may be managed by a peer-to-peer network of nodes (e.g., devices) collectively adhering to a consensus protocol for validating new blocks. Once recorded, the transaction data in a given block cannot be altered retroactively without the alteration of all previous blocks, which requires collusion of a majority of the network nodes.
A blockchain is an append-only data structure maintained by a network of nodes that do not fully trust each other. A permissioned blockchain is a type of blockchain where access to the network of nodes is controlled in some manner, e.g., by a central authority and/or other nodes of the network. All nodes in a blockchain network agree on an ordered set of blocks, and each block may contain one or more transactions. Thus, a blockchain may be viewed as a log of ordered transactions. One particular type of blockchain (e.g., Bitcoin) stores coins as system states shared by all nodes of the network. Bitcoin-based nodes implement a simple replicated state machine model that moves coins from one node address to another node address, where each node may include many addresses. Furthermore, public blockchains may include full nodes, where a full node may include an entire transactional history (e.g., a log of transactions), and a node may not include the entire transactional history. For example, Bitcoin includes thousands of full nodes in all of the nodes that are connected to Bitcoin.
Another particular type of blockchain (e.g., Ethereum) extends Bitcoin to support user-defined and Turing-complete state machines. An Ethereum blockchain lets the user define complex computations and/or instructions in a form of a smart contract, which includes executable code designed to perform one or more actions based on the occurrence of a condition. An Ethereum smart contract, for example, defines, in executable code, a computer protocol that facilitates, verifies, and/or enforces negotiation or performance of a contract. Once deployed, a smart contract is executed on all Ethereum nodes as a replicated state machine. The Ethereum node includes an execution engine (e.g., an Ethereum virtual machine (EVM)) that executes a smart contract. One difference between Ethereum and Bitcoin is that smart contract and transaction states are maintained by Ethereum, while only transaction states are maintained by Bitcoin. In fact, a smart contract is identified by a unique address that includes a balance. Upon retrieving a trigger transaction to the unique address, the smart contract executes logistics of the smart contract.